Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Przykłady funkcji konkatenacji

Funkcji CONCAT() nie należy mylić ze słowem kluczowym skryptu CONCATENATE.

W najprostszej formie funkcja Concat() jest wykorzystywana do łączenia wartości/słów/selekcji w jeden ciąg znaków. Można ją jednak stosować na wiele sposobów przydatnych w rozwiązywaniu problemów. Wszystkie przykłady opierają się na następującej tabeli:

Example string table data
Przykładowe dane tabeli ciągów
Table MyColumn Date Value
Data JKL 01/01/2012 11
Data1 WVX 01/02/2012 13
Data GHI 01/03/2012 13
Data ABC 01/04/2012 15
Data1 STU 01/05/2012 18
Data1 PQR 01/06/2012 10
Data1 MNO 01/07/2012 25
Data DEF 01/08/2012 11

Prosta konkatenacja ciągu znaków

Jak wspomniano wcześniej, funkcja concat umożliwia połączenie listy wartości w ciąg znaków. Wartości te mogą być sztywno kodowane lub uzależnione od selekcji/danych.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Efektem tej prostej instrukcji concat byłoby połączenie wszystkich możliwych wartości z kolumny MyColumn. Można dodać słowo kluczowe DISTINCT. Zapewniłoby to, że każda wartość będzie wyświetlana tylko raz w ciągu:

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

Korzystając z prostej funkcji concat, można dodawać do funkcji wagę sortowania, aby uporządkować wartości ciągów znaków według wybranej kolumny. W poniższym przykładzie w celu posortowania wartości dodana jest kolumna daty.

=CONCAT(MyColumn, ',', Date)

Wynik: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

Funkcja Concat() w obrębie instrukcji Set/wyrażenia

Przykład: Przekazywanie wielu wartości dynamicznych do wyrażenia analizy zestawów

Istnieją sytuacje, w których pożądane jest przekazanie dynamicznej selekcji wartości do instrukcji set. W tym celu należy dodać do ciągu znaków pojedyncze cudzysłowy, aby funkcja CONCAT() zwróciła takie wartości, jak: 'JKL','VWX'. Nie można jednak po prostu dodać pojedynczych cudzysłowów, ponieważ zostałyby zinterpretowane podczas dokonywania oceny funkcji Concat, a nie podczas dokonywania oceny wyrażenia set. Zamiast tego należy użyć funkcji Chr():

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

Następnie można przekazać tę instrukcję concat do środka wyrażenia:

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

W większości przypadków technika ta jest przydatna w przypadku występowania wysp danych. Umożliwia ona przekazywanie do wyrażenia wartości, które nie wpłyną na żadną część modelu danych, ponieważ tabela wyspy danych nie jest do niego dołączona.

Funkcja Concat() w skrypcie

Funkcji Concat można także użyć w skrypcie do konwertowania wielu wierszy w jedną wartość pojedynczej kolumny — tak samo jak w przypadku każdej innej agregacji.

Wynik funkcji CONCAT w skrypcie wygląda następująco (przy uwzględnieniu źródła danych, jakiego wcześniej użyto):

ConcatExample:
Load Table,
Concat(MyColumn,',') as CombinedData
Resident Temp
Group By Table;

Poniżej przedstawiono wynik tej funkcji skryptu:

Przykładowe dane wyjściowe w formie tabeli
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

Korzystanie z funkcji Rank() celem wywarcia wpływu na funkcję Concat()

Zastosowanie innych funkcji w połączeniu z funkcją concat() zapewnia uzyskiwanie jeszcze lepszych rezultatów. W tym przypadku użyto funkcji Rank() w celu pobrania trzech pól o najwyższych wartościach (na podstawie pola Value) i połączenia ich w jeden ciąg znaków.

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

Wynik: ABC,MNO,STU

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!

Dołącz do Programu Modernizacji Analityki

Remove banner from view

Przeprowadź modernizację bez szkody dla Twoich cennych aplikacji QlikView za pomocą programu Analytics Modernization Program. Kliknij tutaj aby uzyskać więcej informacji lub skontaktuj się z nami: ampquestions@qlik.com